zz_

src/isPrime.js

zzmq.dev@gmail.com[dev2]/mathkit[add-isprime-n-function-returns-whether-n] / src / isPrime.js @ 863d2fc8 Download
Ladder Summary
  • file Add isPrime function with export and comprehensive tests
/**
 * Determines whether a given number is a prime.
 *
 * @param {number} n - The number to test.
 * @returns {boolean} True if n is a prime number, otherwise false.
 */
export function isPrime(n) {
  // Primes are integers greater than 1
  if (typeof n !== "number" || !Number.isInteger(n) || n <= 1) {
    return false;
  }

  // 2 is the only even prime
  if (n === 2) {
    return true;
  }

  // Exclude even numbers greater than 2
  if (n % 2 === 0) {
    return false;
  }

  const limit = Math.sqrt(n);
  for (let i = 3; i <= limit; i += 2) {
    if (n % i === 0) {
      return false;
    }
  }

  return true;
}